package com.kefu.chat.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;

@Data
@TableName(value="chat_channel")
@ApiModel(description = "渠道配置")
public class ChatChannel implements Serializable {
    /**
     * 主键
     */
    @TableId(value="channel_id")
    @NotEmpty
    @ApiModelProperty(value = "主键")
    private String channelId;

    /**
     * 租户
     */
    @TableField(value = "tenant_id")
    @ApiModelProperty(value = "租户")
    private String tenantId;


    @TableField(exist=false)
    @ApiModelProperty(value = "公司名称")
    private String tenantName;

    /**
     * 渠道类型：1桌面网站，2移动网站，3APP，4微信，5小程序，6企业微信
     */
    @TableField(value = "channel_type")
    @ApiModelProperty(value = "渠道类型：1桌面网站，2移动网站，3APP，4微信，5小程序，6企业微信")
    private Integer channelType;

    /**
     * 渠道名称
     */
    @TableField(value = "channel_name")
    @ApiModelProperty(value = "渠道名称")
    private String channelName;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @ApiModelProperty(value = "创建时间")
    private Long createTime;

    /**
     * 创建时间
     */
    @TableField(value = "update_time")
    @ApiModelProperty(value = "创建时间")
    private Long updateTime;

    /**
     * 状态：0禁用，1正常
     */
    @TableField(value = "channel_status")
    @ApiModelProperty(value = "状态：0禁用，1正常")
    private Integer channelStatus;

    /**
     * 主动邀请：0关闭，1开启
     */
    @TableField(value = "invite_mode")
    @ApiModelProperty(value = "主动邀请：0关闭，1开启")
    private Integer inviteMode;

    /**
     * 浏览轨迹：0关闭，1开启
     */
    @TableField(value = "travel_mode")
    @ApiModelProperty(value = "浏览轨迹：0关闭，1开启")
    private Integer travelMode;

    /**
     * 接待模式：0机器人优先，1人工优先，2仅机器人，3仅人工
     */
    @TableField(value = "receive_mode")
    @ApiModelProperty(value = "接待模式：0机器人优先，1人工优先，2仅机器人，3仅人工")
    private Integer receiveMode;

    /**
     * 机器人
     */
    @TableField(value = "robot_no")
    @ApiModelProperty(value = "机器人")
    private Integer robotNo;

    /**
     * 分组接待：0关闭，1开启
     */
    @TableField(value = "group_mode")
    @ApiModelProperty(value = "分组接待：0关闭，1开启")
    private Integer groupMode;

    /**
     * 分组接待样式：1=文本样式，2=图文样式，3=图文+描述样式
     */
    @TableField(value = "group_style")
    @ApiModelProperty(value = "分组接待样式：1=文本样式，2=图文样式，3=图文+描述样式")
    private Integer groupStyle;

    /**
     * 分组接待引导文案
     */
    @TableField(value = "group_guide_msg")
    @ApiModelProperty(value = "分组接待引导文案")
    private String groupGuideMsg;

    /**
     * 关键词转人工：0关闭，1开启
     */
    @TableField(value = "keyword_mode")
    @ApiModelProperty(value = "关键词转人工：0关闭，1开启")
    private Integer keywordMode;

    /**
     * 机器人直接回答转人工：0不转人工，1显示转人工按钮
     */
    @TableField(value = "robot_answer_transfer_user_mode")
    @ApiModelProperty(value = "机器人直接回答转人工：0不转人工，1显示转人工按钮")
    private Integer robotAnswerTransferUserMode;

    /**
     * 机器人理解回答转人工：0不转人工，1显示转人工按钮,2直接转人工
     */
    @TableField(value = "robot_understand_transfer_user_mode")
    @ApiModelProperty(value = "机器人理解回答转人工：0不转人工，1显示转人工按钮,2直接转人工")
    private Integer robotUnderstandTransferUserMode;

    /**
     * 机器人引导回答转人工：0不转人工，1显示转人工按钮,2直接转人工
     */
    @TableField(value = "robot_guide_transfer_user_mode")
    @ApiModelProperty(value = "机器人引导回答转人工：0不转人工，1显示转人工按钮,2直接转人工")
    private Integer robotGuideTransferUserMode;

    /**
     * 机器人未知回答转人工：0不转人工，1显示转人工按钮,2直接转人工
     */
    @TableField(value = "robot_unknown_transfer_user_mode")
    @ApiModelProperty(value = "机器人未知回答转人工：0不转人工，1显示转人工按钮,2直接转人工")
    private Integer robotUnknownTransferUserMode;

    /**
     * 转人工按钮显示：0关闭，1开启
     */
    @TableField(value = "transfer_user_show_mode")
    @ApiModelProperty(value = "转人工按钮显示：0关闭，1开启")
    private Integer transferUserMode;

    /**
     * 排队策略
     */
    @TableField(value = "queue_mode")
    @ApiModelProperty(value = "排队策略： default,vip")
    private String queueMode;

    /**
     * vip 优先时间
     */
    @TableField(value = "vip_time")
    @ApiModelProperty(value = "vip 优先时间,分钟")
    private Integer vipTime;

    /**
     * 机器人回答顶踩：0关闭，1开启
     */
    @TableField(value = "robot_evaluate")
    @ApiModelProperty(value = "机器人回答顶踩：0关闭，1开启")
    private Integer robotEvaluate;

    /**
     * 机器人回答点踩是否转人工：0关闭，1开启
     */
    @TableField(value = "robot_evaluate_transfer_user_mode")
    @ApiModelProperty(value = "机器人回答点踩是否转人工：0关闭，1开启")
    private Integer robotEvaluateTransferUserMode;

    /**
     * 机器人欢迎语：0关闭，1开启
     */
    @TableField(value = "robot_welcome_mode")
    @ApiModelProperty(value = "机器人欢迎语：0关闭，1开启")
    private Integer robotWelcomeMode;

    /**
     * 机器人欢迎语
     */
    @TableField(value = "robot_welcome_msg")
    @ApiModelProperty(value = "机器人欢迎语")
    private String robotWelcomeMsg;

    /**
     * 机器人未知回答
     */
    @TableField(value = "robot_unknown_msg")
    @ApiModelProperty(value = "机器人未知回答")
    private String robotUnknownMsg;

    /**
     * 客服不在线说辞：0关闭，1开启
     */
    @TableField(value = "admin_offline_mode")
    @ApiModelProperty(value = "客服不在线说辞：0关闭，1开启")
    private Integer adminOfflineMode;

    /**
     * 客服不在线说辞
     */
    @TableField(value = "admin_offline_msg")
    @ApiModelProperty(value = "客服不在线说辞")
    private String adminOfflineMsg;

    /**
     * 客服欢迎语：0关闭，1开启
     */
    @TableField(value = "admin_welcome_mode")
    @ApiModelProperty(value = "客服欢迎语：0关闭，1开启")
    private Integer adminWelcomeMode;

    /**
     * 客服欢迎语
     */
    @TableField(value = "admin_welcome_msg")
    @ApiModelProperty(value = "客服欢迎语")
    private String adminWelcomeMsg;

    /**
     * 客服超时提示：0关闭，1开启
     */
    @TableField(value = "admin_timeout_mode")
    @ApiModelProperty(value = "客服超时提示：0关闭，1开启")
    private Integer adminTimeoutMode;

    /**
     * 客服超时提示分钟数
     */
    @TableField(value = "admin_timeout_time")
    @ApiModelProperty(value = "客服超时提示分钟数")
    private Integer adminTimeoutTime;

    /**
     * 客服超时提示
     */
    @TableField(value = "admin_timeout_msg")
    @ApiModelProperty(value = "客服超时提示")
    private String adminTimeoutMsg;

    /**
     * 客服结束会话说辞：0关闭，1开启
     */
    @TableField(value = "admin_close_mode")
    @ApiModelProperty(value = "客服结束会话说辞：0关闭，1开启")
    private Integer adminCloseMode;

    /**
     * 客服结束会话说辞
     */
    @TableField(value = "admin_close_msg")
    @ApiModelProperty(value = "客服结束会话说辞")
    private String adminCloseMsg;
    
    /**
     * 非工作时间说辞
     */
    @TableField(value = "un_working_msg")
    @ApiModelProperty(value = "非工作时间")
    private String unWorkingMsg;

    /**
     * 用户排队说辞：0关闭，1开启
     */
    @TableField(value = "user_queue_mode")
    @ApiModelProperty(value = "用户排队说辞：0关闭，1开启")
    private Integer userQueueMode;

    /**
     * 用户排队说辞
     */
    @TableField(value = "user_queue_msg")
    @ApiModelProperty(value = "用户排队说辞")
    private String userQueueMsg;

    /**
     * 用户超时提示：0关闭，1开启
     */
    @TableField(value = "user_timeout_mode")
    @ApiModelProperty(value = "用户超时提示：0关闭，1开启")
    private Integer userTimeoutMode;

    /**
     * 用户超时提示分钟数
     */
    @TableField(value = "user_timeout_time")
    @ApiModelProperty(value = "用户超时提示分钟数")
    private Integer userTimeoutTime;

    /**
     * 用户超时提示
     */
    @TableField(value = "user_timeout_msg")
    @ApiModelProperty(value = "用户超时提示")
    private String userTimeoutMsg;

    /**
     * 用户超时下线分钟数
     */
    @TableField(value = "user_over_time")
    @ApiModelProperty(value = "用户超时下线分钟数")
    private Integer userOverTime;

    /**
     * 用户超时下线提示
     */
    @TableField(value = "user_over_msg")
    @ApiModelProperty(value = "用户超时下线提示")
    private String userOverMsg;

    /**
     * 机器人名称
     */
    @ApiModelProperty(value = "机器人名称")
    @TableField(exist=false)
    private String robotName;

    /**
     * 满意度评价开关
     */
    @TableField(value = "evaluate_mode")
    @ApiModelProperty(value = "满意度评价开关：0关闭，1开启")
    private Integer evaluateMode;

    /**
     * 留言开关
     */
    @TableField(value = "leave_msg_mode")
    @ApiModelProperty(value = "留言开关：0关闭，1开启")
    private Integer leaveMsgMode;

    /**
     * 留言方式
     */
    @TableField(value = "leave_msg_type")
    @ApiModelProperty(value = "留言方式：1留言纪录，2转工单")
    private Integer leaveMsgType;

    /**
     * 留言转工单工单类型
     */
    @TableField(value = "leave_msg_wo_type")
    @ApiModelProperty(value = "留言转工单工单类型")
    private String leaveMsgWoType;

    /**
     * 工单留言开关
     */
    @TableField(value = "workorder_mode")
    @ApiModelProperty(value = "工单留言开关：0关闭，1开启")
    private Integer workorderMode;

    /**
     * 询前表单开关
     */
    @TableField(value = "user_form_mode")
    @ApiModelProperty(value = "询前表单开关：0关闭，1开启")
    private Integer userFormMode;

    /**
     * 询前表单设置
     */
    @TableField(value = "user_form_config")
    @ApiModelProperty(value = "询前表单设置，json格式")
    private String userFormConfig;

    /**
     * 技能组设置
     */
    @TableField(value = "group_config")
    @ApiModelProperty(value = "技能组设置，json格式")
    private String groupConfig;

    /**
     * 熟客指定分配
     */
    @ApiModelProperty(value = "熟客指定分配，0关闭，1开启")
    private Integer chooseLastAdminMode;

    /**
     * 机器人提示
     */
    @ApiModelProperty(value = "机器人提示：0关闭，1开启")
    private Integer robotTipMode;

    /**
     * appId
     */
    @TableField(value = "app_id")
    @ApiModelProperty(value = "appId")
    private String appId;

    /**
     * appSecret
     */
    @TableField(value = "app_secret")
    @ApiModelProperty(value = "secret")
    private String appSecret;

    /**
     * appToken
     */
    @TableField(value = "app_token")
    @ApiModelProperty(value = "token")
    private String appToken;

    /**
     * aesKey
     */
    @TableField(value = "aes_key")
    @ApiModelProperty(value = "aesKey")
    private String aesKey;

    /**
     * 微信消息体格式
     */
    @TableField(value = "msg_data_format")
    @ApiModelProperty(value = "微信消息体格式，XML，JSON")
    private String msgDataFormat;

    /**
     * corpId
     */
    @TableField(value = "corp_id")
    @ApiModelProperty(value = "corpId")
    private String corpId;

    /**
     * agentId
     */
    @TableField(value = "agent_id")
    @ApiModelProperty(value = "agentId")
    private Integer agentId;

    /**
     * 机器人头像
     */
    @TableField(exist=false)
    @ApiModelProperty(value = "机器人头像")
    private String robotIcon;

    /**
     * 语音视频聊天开关
     */
    @TableField(value = "video_flag")
    @ApiModelProperty(value = "语音视频聊天开关 0=关闭，1=开启")
    private Integer videoFlag;

    /**
     * 是否开启会话常见问题
     */
    @TableField(value = "faq_mode")
    @ApiModelProperty(value = "是否开启常见问题 0=否，1=是")
    private Integer faqMode;

    /**
     * 常见问题方案id
     */
    @TableField(value="faq_id")
    @ApiModelProperty(name = "faqId", value = "常见问题方案id")
    private String faqId;

    /**
     * 是否开启会话快捷菜单
     */
    @TableField(value = "menu_mode")
    @ApiModelProperty(value = "是否开启会话快捷菜单0=否，1=是")
    private Integer menuMode;

    /**
     * 快捷菜单方案id
     */
    @TableField(value = "menu_config_plan_id")
    @ApiModelProperty(value = "快捷菜单方案id", name = "menuConfigPlanId")
    private String menuConfigPlanId;

    /**
     * 是否开启广告位
     */
    @TableField(value = "poster_mode")
    @ApiModelProperty(name = "posterMode", value = "是否开启广告位0=否，1=是")
    private Integer posterMode;

    /**
     * 广告内容
     */
    @TableField(value = "poster_ids")
    @ApiModelProperty(value = "广告内容")
    private String posterIds;

    /**
     * 词条评价开关
     */
    @ApiModelProperty(value = "词条评价开关 0=否，1=是")
    private Integer commentDocMode;

    /**
     * 语言
     */
    @TableField(value = "language")
    @ApiModelProperty(value = "语言：")
    private String language;

    /**
     * 套件图标，0-5
     */
    @TableField(value = "kit_icon")
    @ApiModelProperty(value = "套件图标，0-5")
    private Integer kitIcon;

    /**
     * 套件位置，0右下，1左下
     */
    @TableField(value = "kit_position")
    @ApiModelProperty(value = "套件位置，0右下，1左下")
    private Integer kitPosition;

    /**
     * 套件侧边距
     */
    @TableField(value = "kit_marginx")
    @ApiModelProperty(value = "套件侧边距")
    private Integer kitMarginx;

    /**
     * 套件下边距
     */
    @TableField(value = "kit_marginy")
    @ApiModelProperty(value = "套件下边距")
    private Integer kitMarginy;

    /**
     * 背景颜色
     */
    @TableField(value = "kit_bgcolor")
    @ApiModelProperty(value = "背景颜色")
    private String kitBgcolor;

    /**
     * 文字颜色
     */
    @TableField(value = "kit_txcolor")
    @ApiModelProperty(value = "文字颜色")
    private String kitTxcolor;

    /**
     * 套件宽度
     */
    @ApiModelProperty(value = "套件宽度")
    private Integer kitWidth;

    /**
     * 窗口宽度
     */
    @ApiModelProperty(value = "窗口宽度")
    private Integer winWidth;

    /**
     * 主题颜色
     */
    @TableField(value = "main_color")
    @ApiModelProperty(value = "主题颜色")
    private String mainColor;

    /**
     * 桌面网站页面宽
     */
    @TableField(value = "main_width")
    @ApiModelProperty(value = "桌面网站页面宽")
    private Integer mainWidth;

    /**
     * 桌面网站页面高
     */
    @TableField(value = "main_height")
    @ApiModelProperty(value = "桌面网站页面高")
    private Integer mainHeight;

    /**
     * 是否显示导航条
     */
    @TableField(value = "navigation_bar_show_flag")
    @ApiModelProperty(value = "是否显示导航条 0 = 否，1 = 是")
    private Integer navigationBarShowFlag;

    /**
     * 导航条颜色
     */
    @TableField(value = "navigation_bar_color")
    @ApiModelProperty(value = "导航条颜色")
    private String navigationBarColor;

    /**
     * 导航条颜色
     */
    @TableField(value = "navigation_bar_type")
    @ApiModelProperty(value = "导航条类型  1= 展示接待客服＋企业名称,2=展示企业信息＋接待状态")
    private Integer navigationBarType;

    /**
     * 导航条是否显示客服
     */
    @TableField(value = "navigation_bar_agent_flag")
    @ApiModelProperty(value = "导航条是否显示客服0=否，1=是")
    private Integer navigationBarAgentFlag;

    /**
     * 导航条是否显示客服昵称
     */
    @TableField(value = "navigation_bar_agent_nick_flag")
    @ApiModelProperty(value = "导航条是否显示客服昵称0=否，1=是")
    private Integer navigationBarAgentNickFlag;

    /**
     * 导航条是否显示客服头像
     */
    @TableField(value = "navigation_bar_agent_face_flag")
    @ApiModelProperty(value = "导航条是否显示客服头像0=否，1=是")
    private Integer navigationBarAgentFaceFlag;

    /**
     * 导航条是否显示企业名称
     */
    @TableField(value = "navigation_bar_agent_tenant_name_flag")
    @ApiModelProperty(value = "导航条是否显示企业名称0=否，1=是")
    private Integer navigationBarTenantNameFlag;

    /**
     * 导航条显示企业名称
     */
    @TableField(value = "navigation_bar_agent_tenant_name")
    @ApiModelProperty(value = "导航条显示企业名称")
    private String navigationBarTenantName;

    /**
     * 导航条是否显示企业
     */
    @TableField(value = "navigation_bar_agent_tenant_logo_flag")
    @ApiModelProperty(value = "导航条是否显示企业logo0=否，1=是")
    private Integer navigationBarTenantLogoFlag;

    /**
     * 导航条显示企业logo地址
     */
    @TableField(value = "navigation_bar_agent_tenant_logo_url")
    @ApiModelProperty(value = "导航条显示企业logo地址")
    private String navigationBarTenantLogoUrl;

    /**
     * 窗口标题文案
     */
    @TableField(value = "title_desc")
    @ApiModelProperty(value = "窗口标题文案")
    private String titleDesc;

    /**
     * 客户发送消息时展示客服头像
     */
    @TableField(value = "cus_show_agent_face")
    @ApiModelProperty(value = "客户发送消息时展示客服头像0=否，1=是")
    private Integer cusShowAgentFace;

    /**
     * 客户发送消息时是否展示客服昵称
     */
    @TableField(value = "cus_show_agent_nick")
    @ApiModelProperty(value = "客户发送消息时是否展示客服昵称0=否，1=是")
    private Integer cusShowAgentNick;

    /**
     * 对话消息可点击颜色
     */
    @TableField(value = "cus_color")
    @ApiModelProperty(value = "对话消息可点击颜色")
    private String cusColor;

    /**
     * 显示侧边栏
     */
    @TableField(value = "side_bar_status")
    @ApiModelProperty(value = "显示侧边栏：0=否，1=是")
    private Integer sideBarStatus;

    /**
     * 侧边栏宽度
     */
    @TableField(value = "side_bar_width")
    @ApiModelProperty(value = "侧边栏宽度")
    private Integer sideBarWidth;

    /**
     * 通告消息：0关闭，1开启
     */
    @TableField(value = "notice_mode")
    @ApiModelProperty(value = "通告消息：0关闭，1开启")
    private Integer noticeMode;

    /**
     * 通告背景颜色
     */
    @TableField(value = "notice_bg_color")
    @ApiModelProperty(value = "通告背景颜色")
    private String noticeBgColor;

    /**
     * 通告背景颜色
     */
    @TableField(value = "notice_text_color")
    @ApiModelProperty(value = "通告文字颜色")
    private String noticeTextColor;

    /**
     * 通告消息
     */
    @TableField(value = "notice_msg")
    @ApiModelProperty(value = "通告消息", name = "noticeMsg")
    private String noticeMsg;
    private static final long serialVersionUID = 1L;
}